// 题目：购物车优化

// 问题：你正在为一个电商网站编写前端代码，其中一个重要的功能是购物车。购物车需要满足以下功能：

// 用户可以添加商品到购物车。
// 用户可以从购物车中删除商品。
// 用户可以修改购物车中商品的数量。
// 用户可以查看购物车中所有商品的总价格。
// 你需要编写一个 JavaScript 对象，实现以上功能。你可以假设每个商品都有一个唯一的 id 和一个价格。


class ShoppingCart {
    constructor() {
        // id, price, quantity
        this.products = new Map();
    }

    addProduct(product, quantity) {
        // todo
    }

    removeProduct(id) {
        // todo
    }

    updateProductQuantity(id, quantity) {
        // todo
    }

    getTotalPrice() {
        // todo
    }
}

// 例如
const cart = new ShoppingCart();
cart.addProduct({ id: 1, price: 10 }, 2); // 添加了2个价格为10的商品
cart.addProduct({ id: 2, price: 20 }, 1); // 添加了1个价格为20的商品
console.log(cart.getTotalPrice()); // 输出：40
cart.removeProduct(1); // 删除了id为1的商品
console.log(cart.getTotalPrice()); // 输出：20
cart.updateProductQuantity(2, 2); // 将id为2的商品数量改为2
console.log(cart.getTotalPrice()); // 输出：40
